Traditionally, contact centers are referred to as call centers and designed to enable a company to handle calls from their clients. The calls received from the clients may be distributed to multiple call agents according to certain call distribution and handling methodologies. Ideally, a call center is designed to handle calls with minimal client waiting time, minimal dropped calls, even call distribution to agents, and minimal downtime. Any drastic fluctuations in one or more of these criteria may result in loss of business and/or customer dissatisfaction.
The call centers are normally configured to be operated on-premise using proprietary systems with propriety hardware and software. These on-premise call center systems are generally very costly to maintain. The systems typically require internal support staff. Furthermore, the systems may be inflexible in the type of applications and hardware that can be supported, limiting the company's ability to upgrade and grow along with any potential increase in demand. Even when the upgrade options are available, the options tend to be very costly and may require replacing a current system with another more advanced system, causing further stress to the supporting staff, the agents and the clients.
Ideally, the resources of a call center solution are monitored so that the call center is able to determine which resources are occupied and which resources are available. However, when real-time monitoring of the status of call center resources is desired, the on-premise call center solution may be impractical.